package co.yixiang.yshop.module.cart.controller.admin.storecart.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;

/**
 * 购物车 Base VO，提供给添加、修改、详细的子 VO 使用
 * 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
 */
@Data
public class StoreCartBaseVO {

    @Schema(description = "用户ID", required = true, example = "10667")
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    @Schema(description = "类型", required = true, example = "1")
    @NotNull(message = "类型不能为空")
    private String type;

    @Schema(description = "商品ID", required = true, example = "1696")
    @NotNull(message = "商品ID不能为空")
    private Long productId;

    @Schema(description = "商品属性", required = true)
    @NotNull(message = "商品属性不能为空")
    private String productAttrUnique;

    @Schema(description = "商品数量", required = true)
    @NotNull(message = "商品数量不能为空")
    private Short cartNum;

    @Schema(description = "0 = 未购买 1 = 已购买", required = true)
    @NotNull(message = "0 = 未购买 1 = 已购买不能为空")
    private Integer isPay;

    @Schema(description = "是否为立即购买", required = true)
    @NotNull(message = "是否为立即购买不能为空")
    private Integer isNew;

    @Schema(description = "拼团id", example = "13847")
    private Integer combinationId;

    @Schema(description = "秒杀产品ID", required = true, example = "8790")
    @NotNull(message = "秒杀产品ID不能为空")
    private Integer seckillId;

    @Schema(description = "砍价id", required = true, example = "21581")
    @NotNull(message = "砍价id不能为空")
    private Integer bargainId;

}
